There has in the recent years evolved a number of ways for users of different types of end terminals to be able to enjoy multimedia sessions that are normally IP-based. Such sessions include VoIP (Voice over IP) sessions, but also other types of sessions are feasible, like video sessions and Push-to-Talk. One standard that has evolved for such IP-based sessions is the standard SIP (Session Initiation Protocol). This standard is for instance described by Rosenberg, J. et al in SIP: Session Initiation Protocol, IETF RFC 3261, June 2002.
However when using such a protocol the amount of data transmitted is very high, which is problematic if wireless networks having limited bandwidth are used.
Because of this there have evolved different ways to compress data transmitted according to such a protocol.
One compression technique developed for SIP is SigComp. SigComp is described in more detail by Price, R. et. al. “Signaling Compression (SigComp)”, IETF RFC 3320, January 2003. SigComp is an important technique to minimize the size of transmitted SIP messages over a radio interface of a cellular network. This is important primarily for two reasons; The size of the messages lead to long transmission times in the case of low bitrate links, which will negatively impact e.g. set-up times of IMS (IP Multimedia Subsystem) services. The large size of the uncompressed messages also lead to decreased capacity of the network, which is also negative and must be avoided as far as possible.
To make the compression efficient, the variable content of the SIP messages must be used in some way. There are a number of ways to do this and the most important techniques are static dictionaries, user-specific dictionaries (USD) and dynamic compression.
SIP static dictionaries are described by Garcia-Martin, M. et. al. in “The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) static dictionary for Signaling Compression (SigComp)”, IETF RFC 3485, February 2003. A static library is primarily useful for compression of the initial SIP message after an end terminal registers itself to a network function, often called a P-CSCF (Proxy-Call Session Control Function). However, the SIP static dictionary will not by itself result in satisfactory compression efficiency, other means are also necessary.
In “SigComp—Extended Operations” by Hannu, H. et. al., “Signaling Compression (SigComp) Extended Operations”, IETF RFC 3321, January 2003, the concept of USD (User Specific Dictionary) and cross-session states are introduced. The user specific dictionary is a static dictionary, which is specific to an individual user. The content of the USD is not standardized which means that it needs to be sent from a compressing side to a decompressing side prior to its use. In case the USD is large, it may require several messages for the upload. This limits the usefulness of the dictionary for an initial message.
The cross-session state is described as prolonging the lifetime of a SigComp compartment, which is a memory area assigned to a user. However, this state is not further specified and this makes it impossible to use since two SigComp endpoints need to know exactly how long a compartment lifetime is. Failure to do this will result in loss of synchronization and decompression failure.
In 3GPP TS 24.229, IP Multimedia Call Control Protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP), Release 6, V6.6.0, (2005-03), a compartment lifetime is by definition the time the user is registered, i.e. the compartment is opened when the user registers and closed when the user de-registers. Any deviation from this will cause loss of synchronization and decompression failure.
The most efficient technique to obtain a high level of compression efficiency is to use dynamic compression. Dynamic compression is obtained by saving states, e.g. the contents of a message, and use these as a dictionary when compressing subsequent messages. A compartment is then opened for an end terminal for storing states. By repeating this process to add messages or parts of them to the state an efficient dictionary is built. Furthermore, it will adapt to long-term changes in the SIP messages following from new services or message flows.
However, dynamic compression suffers from one drawback; it is not efficient until a sufficient number of messages have been saved in a state. The number of messages is not important, but the messages must be diverse enough to capture the differences that are typical for SIP messages. The main problem is that the dictionary needs to be rebuilt every time a compartment is opened, since the states in the compartment are always deleted when the compartment is closed. For a typical user this means that every time the terminal is turned on and registers to a network server, the compression efficiency is low until the compartment has been filled with useful data. As a consequence, the first call setup will be slow due to inefficient compression.
Using a USD suffers from the same deficiency, i.e. that there is no USD available for the first message(s). After an upload of the USD the compression performance can be expected to be satisfactory.
There is thus a need for speeding up dynamic compression so that it functions well even in the initial phases of its use when performing a new registering of an end terminal to a network server.